1. Field of the Invention
This invention relates to managing operation of processes constructed from software components and running on servers in a distributed computing environment, for which management of the service is carried out from a management location that is in communication with the servers.
2. Related Art
In a corporate environment, computer systems at remote locations are often connected in a network. The computers may be located at widely spaced locations for example, in different countries and are connected through a wide area network (WAN) through conventional telecommunications systems or ISDN links. It is uneconomic to have local operation and management of each computer system in each location and hence, hitherto, facilities have been provided to allow remote operation and management of the individual computer systems from a management location, remote from the individual computer systems. Personnel at the management location thus do not have physical access to the individual computers. Hardware and software vendors commonly provide facilities to manage systems from a management location at the level of the computer operating system but do not provide standard functions which can be applied at an application program level e.g. at a business application level. For example, in the case of UNIX system it is known to use the xe2x80x9cNet View 6000xe2x80x9d network monitor tool from IBM which allows the individual computers, referred to herein as servers, in the network to be monitored. However, only limited control is possible. The network tool allows the individual servers to be switched off by means of a xe2x80x9cstop listeningxe2x80x9d command sent to the server and also to interrogate the state of the server by means of an xe2x80x9care you listening?xe2x80x9d command which provides information to the management location concerning the operational status of the server.
Recent developments in the field of software engineering include the use of resuable components to constuct applications. It is desirable that these components be manageable at run-time. However, they are invisible to presently available management tools which cannot see past the process level. Thus, conventional software for a distributed processing environment (DPE) does not permit satisfactory control at the component level of individual business applications programs that are distributed amongst the servers in the network.
The present invention seeks to overcome this problem.
The following terminology is used herein:
xe2x80x9cserver machinexe2x80x9d means a computer connected to a network running processes on behalf of other machines.
xe2x80x9cclient machinexe2x80x9d means a computer connected to a network running processes which request processing by a server machine.
xe2x80x9cserver applicationxe2x80x9d means an application program or library that exposes an interface for control and input and output of data.
xe2x80x9cclient applicationxe2x80x9d means an application program configured to interact with a server application via its interface.
xe2x80x9cprocessxe2x80x9d means an instance of a server application running on a server machine.
xe2x80x9ccomponentxe2x80x9d means a software structure having its own interface for exposing functions, procedures, methods, or properties to other software structures by means of late binding.
Recent developments in software engineering have led to the ability of one program, xe2x80x9cthe clientxe2x80x9d, to delegate processing to another program, xe2x80x9cthe serverxe2x80x9d. Examples of this are OLE2 supported in the Microsoft (RTM) Windows environment and the RPC (Remote Procedure Call) capability of DCE (Distributed Computing Environment) in UNIX systems.
In DCE, when a client application needs the services of a remote server application, i.e. one which is accessible throughout a network, it first authenticates itself with the DCE security service. The CDS (Cell Directory Service) is then accessed to retrieve a binding which is used by DCE to control communication between the client application and an interface of server application. It will be appreciated that one application may expose more than one interface.
Considering the case of a client-server customer data access system, a client application provides a user interface and a server application searches a database. If an end user wishes to retrieve information about a customer, the end user will enter, for example, the customer""s reference. If a binding to the server application has not already been obtained, this will be obtained from the CDS. Once the binding has been obtained, the server application""s interface will be exposed to the client application. The client application can then call the server application""s xe2x80x9cFIND_CUSTOMER_DATA_FROM_REFxe2x80x9d function, sending the input reference as a parameter. An instance of the server application is then run to retrive the customer data from a database. The retrieved data is then sent to the client application as the result of the called function, as if the function were part of the client application, and displayed to the user.
The present invention makes use of the ability of server applications to expose interfaces in this way to expand the management capabilities of distributed processing environments.
According to the present invention, there is provided a distributed processing system comprising hardware supporting at least one user client application, a plurality of server applications capable of exposing user application interfaces to a user client application, and a management client application, wherein the server applications are capable of exposing a common management interface to the management client application. Thus, each server application has two faces. One face is shown to an end-user client application on a client machine and the other is shown to a management client application on a management client machine.
Preferably, a system according to the present invention comprises a user client computer running the user client application, an application server computer running said plurality of server applications and a management client computer running the management client application. More preferably, a further application server computer running at least one server application is provided.
Prefererably, a system according to the present invention includes a database server configured to process data at the request of a server application.
Preferably, a network provides communication between the client applications and the server applications. The management client may communicate with the server applications via a further network and a gateway server.
According to the present invention, there is also provided a method of managing operation of server-applications in a distributed computing environment in which the server applications comprise individual components exposing respective interfaces, and management of the server applications is carried out from a management location that is in communication with the server applications, the method comprising-transmitting from the management location to the individual server applications, management commands to control or retrive information on individual server applications and individual server application components whereby to manage the computing processes from the management location.
Preferably, the method includes reporting from the individual server applications to the management location the status of said components.
Preferably, the method includes carrying out the reporting to the mangement location in reponse to the commands.
Preferably, the method includes displaying the status of the individual application servers and components on a common display at the managemment location.
Preferably, the management commands perform one or more of the following functions: disable, enable, save data from, load data into, get a particular attribute of, set a particular attribute of, or list attributes of a particular server application or component.
Preferably, the servers are coupled to the management location through a network, and including transmitting the management commands in a predetermined standard, and converting the commands received through the network at indivdual ones of the servers from the standard, into a protocol suitable for use by the individual server.
According to the present invention, there is further provided a distributed computing environment comprising a plurality of servers which process individual components of computing processes distributed amongst the servers, a management controller that communicates with the servers, and means for transmitting from the management controller to the individual servers, management commands that control the individual components of the processes run by the servers, whereby to manage the computing processes from the management controller.
According to the present invention, there is still further provided a management controller for use in a distributed computing environment in which a plurality of server machines perform a plurality of computer processes, distributed amongst the servers, made up of individual components, the management controller including means for transmitting to the individual servers management commands that control the individual components of the processes run by the servers, whereby to manage the computing processes from the management controller.
According to the present invention, there is yet further provided a server for use in a distributed computing environment for processing individual components of computing processes distributed amongst a plurality of such servers under the control of a management controller comprising means for receiving from the management controller, management commands that control the individual components of the process or processes run by the server whereby to permit management of the computing process or processes from the management controller.